Spring boot2.0更换druid连接池

您所在的位置:网站首页 druid多数据源配置 spring boot Spring boot2.0更换druid连接池

Spring boot2.0更换druid连接池

2023-05-27 08:35| 来源: 网络整理| 查看: 265

Spring boot2.0更换druid连接池 原创

wx59c4be76c13a2 2023-05-27 06:05:41 博主文章分类:Spring boot ©著作权

文章标签 Spring boot druid 连接池 spring java 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者wx59c4be76c13a2的原创作品,请联系作者获取转载授权,否则将追究法律责任

Spring boot1.0版本使用的是tomcat连接池,Spring boot2.0使用的是HikariCP连接池,号称性能最优。druid是阿里开源的连接池,性能比较全面。下面说一下怎么在Spring boot配置druid连接池。

配置依赖 com.alibaba druid 1.1.9 更改配置文件

修改application.properties配置文件,加入下面属性,我测试用的是pg数据库

#postgresql数据库配置 spring.datasource.url=jdbc:postgresql://localhost:5432/postgres spring.datasource.username=postgres spring.datasource.password=postgres spring.datasource.driver-class-name=org.postgresql.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 spring.datasource.maxWait=60000 spring.datasource.timeBetweenEvictionRunsMillis=60000 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=select version() spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false spring.datasource.poolPreparedStatements=true #配置监控统计拦截的filters,stat:监控统计、log4j:日志记录、wall:防御sql注入 #如果允许时报错 java.lang.ClassNotFoundException: org.apache.log4j.Priority #则导入 log4j 依赖即可,Maven 地址: https://mvnrepository.com/artifact/log4j/log4j #spring.datasource.filters=stat,wall,log4j spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 spring.datasource.useGlobalDataSourceStat=true spring.datasource.connectionProperties=druid.stargeSql=true;druid.stat.slowSqlMillis=500增加配置文件

在启动类同级文件夹下创建config文件夹,新建DruidConfig类

package com.data.test.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class DruidConfig { /** * 将自定义的 Druid 数据源添加到容器中,不再让 Spring Boot 自动创建 * 这样做的目的是:绑定全局配置文件中的 druid 数据源属性到 com.alibaba.druid.pool.DruidDataSource * 从而让它们生效 * @ConfigurationProperties(prefix = "spring.datasource"):作用就是将 全局配置文件中 前缀为 spring.datasource * 的属性值注入到 com.alibaba.druid.pool.DruidDataSource 的同名参数中 * * @return */ @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druidDataSource() { return new DruidDataSource(); } }

到这里就已经配置完,并且生效了。

测试

测试代码

package com.data.test; import com.alibaba.druid.pool.DruidDataSource; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.Connection; import java.sql.SQLException; @RunWith(SpringRunner.class) @SpringBootTest public class TestApplicationTest { /** * Spring Boot 默认已经配置好了数据源,程序员可以直接 DI 注入然后使用即可 */ @Resource DataSource dataSource; @Test public void contextLoads() throws SQLException { System.out.println("数据源>>>>>>" + dataSource.getClass()); Connection connection = dataSource.getConnection(); System.out.println("连接>>>>>>>>>" + connection); System.out.println("连接地址>>>>>" + connection.getMetaData().getURL()); DruidDataSource druidDataSource = (DruidDataSource) dataSource; System.out.println("druidDataSource 数据源最大连接数:" + druidDataSource.getMaxActive()); System.out.println("druidDataSource 数据源初始化连接数:" + druidDataSource.getInitialSize()); connection.close(); } }

测试结果

Spring boot2.0更换druid连接池_Spring boot

收藏 评论 分享 举报

上一篇:Spring boot配置Slf4j日志输出

下一篇:nacos服务中心搭建与服务注册



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3